eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
eq: empty set
0: empty set
true: empty set
s: empty set
false: empty set
inf: {1}
cons: empty set
take: {1, 2}
nil: empty set
length: {1}
↳ CSR
↳ CSDependencyPairsProof
eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
eq: empty set
0: empty set
true: empty set
s: empty set
false: empty set
inf: {1}
cons: empty set
take: {1, 2}
nil: empty set
length: {1}
Using Improved CS-DPs we result in the following initial Q-CSDP problem.
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
EQ(s(X), s(Y)) → EQ(X, Y)
inf(s(X))
take(X, L)
length(L)
take on positions {1, 2}
length on positions {1}
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(length(x_0)) → U(x_0)
U(inf(s(X))) → INF(s(X))
U(take(X, L)) → TAKE(X, L)
U(length(L)) → LENGTH(L)
eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(length(x_0)) → U(x_0)
eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(length(x_0)) → U(x_0)
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
↳ PIsEmptyProof
↳ QCSDP
eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ QCSUsableRulesProof
EQ(s(X), s(Y)) → EQ(X, Y)
eq(0, 0) → true
eq(s(X), s(Y)) → eq(X, Y)
eq(X, Y) → false
inf(X) → cons(X, inf(s(X)))
take(0, X) → nil
take(s(X), cons(Y, L)) → cons(Y, take(X, L))
length(nil) → 0
length(cons(X, L)) → s(length(L))
eq(0, 0) → true
eq(s(x0), s(x1)) → eq(x0, x1)
eq(x0, x1) → false
inf(x0) → cons(x0, inf(s(x0)))
take(0, x0) → nil
take(s(x0), cons(x1, x2)) → cons(x1, take(x0, x2))
length(nil) → 0
length(cons(x0, x1)) → s(length(x1))
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ QCSUsableRulesProof
↳ QCSDP
↳ QCSDPReductionPairProof
EQ(s(X), s(Y)) → EQ(X, Y)
POL(EQ(x1, x2)) = x2
POL(s(x1)) = 2 + 2·x1
EQ(s(X), s(Y)) → EQ(X, Y)
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ QCSUsableRulesProof
↳ QCSDP
↳ QCSDPReductionPairProof
↳ QCSDP
↳ PIsEmptyProof